今天我們嘗試看看新建一份簡易的Docker Compose 文件,那我們就開始吧 !
前文我們提及和Docker compose 息息相關的docker-compose.yml 檔案,只要把所有需要使用的Docker image都編輯到這份文件中,最後下啟動指令docker-compose up,就能一次啟動多個Container,非常的迅速及方便。
在開始之前,我們需要先安裝Docker compose的環境
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
docker-compose下載在/usr/local/bin的地方
加上使用權限
sudo chmod +x /usr/local/bin/docker-compose
完成後,使用docker-compose version指令來驗證是否驗載成功。
可以使用 docker-compose version 或 docker-compose —-version
除了看docker-compose版本以外還能到phthon及openssl的版本
Mkdir it30days 新建目錄
cd it30days 進入目錄
touch docker-compose.yml 新建檔案
vim docker-compose.yml 進入到檔案內按i開始編輯
version: '3'
services:
db:
image: mysql:latest
container_name: my_mysql_db
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: my_database
MYSQL_USER: my_user
MYSQL_PASSWORD: my_password
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
adminer:
image: adminer:latest
container_name: my_adminer
ports:
- "8080:8080"
depends_on:
- db
volumes:
mysql_data:
結束後 按esc鍵,:wq存檔。
db:這是MySQL資料庫容器。我們使用了官方的MySQL鏡像,並定義了一些環境參數來配置資料庫。我們將MySQL的3306端口映射到主機的3306端口,以便可以透過主機存取資料庫。資料庫資料保存在名中為mysql_data的Docker卷中。
adminer:這是Adminer容器,用於管理MySQL資料庫。我們使用了官方的Adminer映像,將等待容器的8080連接埠對應到主機的8080連接埠。此容器依賴服務,因此它會啟動資料庫服務後再啟動db。
請注意,上述範例僅供參考,您可以根據自己的需求進一步自訂。確保替換、 、my_database並my_user為my_password您root_password所需密碼的資料庫名稱、使用者名稱、資料庫密碼和 MySQL root。您還可以根據需要更改連接埠映射。
docker-compose up -d
docker-compose ps
docker-compose stop
docker-compose rm
在此次實作中,發生了一件奇怪的事,就是DB Docker compose up後明明顯示done,狀態卻一直無法開啟,那麼明天我們就來touble shooting神秘事件吧 ~~~~